A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as its appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
A. Field of the Invention
The invention relates generally to field of three dimensional modeling and animation. In particular, the invention relates to an improved three dimensional modeling and animation system having an object oriented architecture.
B. Related Art
Three dimensional modeling systems allow users to generate models of three dimensional objects using computers. In previous systems, a user defines a simple three dimensional (3D) object and then applies various modifications (e.g., stretch, bend) to that object. The modifications change the way the object looks. To apply a modification, a user is prompted with a dialog box to fill in the values of the modification. The user then applies the modification to the object and views the results.
One problem with such a system is that the user does not have a good idea of how a specific modification will affect an object until after the modification is applied to the object. Additionally, it can be difficult to understand exactly how a specific modification affects an object from the look of the object after the modification is applied. This is because it can be difficult to understand the interactions between various modifications, already applied to the object, and the new modification.
Therefore, it is desirable to have a 3D modeling system that is simpler for the user to use by allowing the user to better understand how a particular modification to an object will affect the look of that object.
One embodiment of the invention includes a method of generating a three dimensional (3D) representation of a modeled object on a display device of a computer system. The modeled object is represented by an initial definition of an object and a set of modifiers. Each modifier modifies some portion of the definition of an object that may result in a change in appearance of the object when rendered. The modifiers are ordered so that the first modifier modifies some portion of the initial definition of the object and produces a modified definition. The next modifier modifies the results of the previous modifier. The results of the last modifier are then used in rendering processes to generate the 3D representation.
In one embodiment, the modifiers are easily shared, the order of the modifiers is easily changed, and the values associated with the modifiers is also easily changed. These features provide the user with great flexibility in modeling and animation.
In one embodiment, the modifiers are associated with three dimensional visual representations that allow a user to better visualize and change the effect of a particular modifier.
In one embodiment, intermediate channel results created during the generation of a representation of an object are cached thereby increasing the speed of this embodiment. In particular, the representation of the object is generated in multiple channels, each channel representing some portion of that representation. Intermediate channel results are generated in each channel by elements in that object""s list of modifiers. Depending on for how long these intermediate channel results are valid, the intermediate channel results may or may not be cached. In particular, in one embodiment, if it is determined that one set of intermediate channel results will be valid for a predetermined period of time, while the next intermediate channel results in that channel will not be valid for a predetermined period of time, then the intermediate channel results are cached.